
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>在分布式系统中如何应对网络分区 - 学习卡片</title>
      <style>
        body { font-family: sans-serif; background-color: #f0f8ff; color: #333; display: flex; flex-direction: column; align-items: center; padding: 50px 20px; }
        .header h1 { font-size: 32px; }
        .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; width: 100%; max-width: 1200px; }
        .card-container { perspective: 1200px; cursor: pointer; height: 250px; }
        .card { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.7s; border-radius: 16px; box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
        .card-container.flipped .card { transform: rotateY(180deg); }
        .card-face { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; flex-direction: column; box-sizing: border-box; border-radius: 16px; background-color: #fff; padding: 24px; }
        .card-back { background-color: #f0fff4; transform: rotateY(180deg); justify-content: space-between; }
        .card-category { font-size: 14px; color: #0052d9; margin-bottom: 8px; font-weight: 500; }
        .card-question { font-size: 20px; font-weight: 500; flex-grow: 1; display: flex; align-items: center; justify-content: center; text-align: center; }
        .card-answer-wrapper { flex-grow: 1; overflow-y: auto; }
        .card-answer { font-size: 15px; line-height: 1.7; }
        .card-footer { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 16px; margin-top: 16px; }
        .card-source { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 12px; margin-top: 12px; }
      </style>
    </head>
    <body>
      <div class="header">
        <h1>在分布式系统中如何应对网络分区 - 学习卡片</h1>
      </div>
      <div class="grid-container">
        
    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">概念</div>
          <div class="card-question">什么是网络分区？它有哪些主要特征？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">概念</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">网络分区是指在分布式系统中，由于网络故障或其他原因，系统中的某些节点之间失去了通信能力，形成了一个或多个孤立的子集。其主要特征包括：隔离性（各部分无法通信）、暂时性或永久性（故障持续时间不一）、以及异质性（分区可能涉及不同类型的节点和服务）。</div>
          </div>
          <div class="card-source">来源: 网络分区的基本概念 -> 1. 定义与特征</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">CAP定理的核心内容是什么？它定义了分布式系统的哪三个核心属性？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">CAP定理指出，在一个分布式系统中，当系统遭遇网络分区时，只能在一致性和可用性之间进行选择。它定义的三个核心属性是：一致性（Consistency），所有节点在同一时刻看到的数据是相同的；可用性（Availability），每个请求都会收到一个响应；分区容错性（Partition Tolerance），系统能够处理网络分区并继续正常工作。</div>
          </div>
          <div class="card-source">来源: 一致性与可用性的权衡 -> 1. CAP定理概述</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">策略</div>
          <div class="card-question">当网络分区发生时，系统选择保证强一致性（CP）和选择保证高可用性（AP）分别意味着什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">策略</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">选择保证强一致性（CP）意味着系统会牺牲可用性，可能在某些节点不可用时暂停服务，以维护数据的一致性。选择保证高可用性（AP）意味着系统会牺牲一致性，在节点不可用时依然继续提供服务，但可能返回不一致的数据。</div>
          </div>
          <div class="card-source">来源: 一致性与可用性的权衡 -> 1. CAP定理概述</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">文档中提到了哪些用于实现分布式一致性的协议？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">文档中提到的分布式一致性协议包括：Paxos（通过选举机制达成共识）、Raft（一种简化的共识协议，通过领导者选举和日志复制实现一致性）、以及两阶段提交（2PC，用于处理分布式事务）。</div>
          </div>
          <div class="card-source">来源: 一致性与可用性的权衡 -> 3. 一致性与可用性的实际应用</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">模式</div>
          <div class="card-question">在系统设计中，主从复制和主主复制这两种数据复制方式在可用性和一致性管理上有何区别？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">模式</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">主从复制（Master-Slave Replication）由主节点处理所有写操作，简化了一致性管理，但在网络分区时可能影响从节点的可用性。主主复制（Master-Master Replication）允许多个主节点处理写操作，提供了更高的可用性，但一致性管理复杂度增加，尤其是在处理冲突时。</div>
          </div>
          <div class="card-source">来源: 系统设计与架构 -> 1. 数据复制与一致性</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">策略</div>
          <div class="card-question">什么是服务降级策略？请举一个“功能裁剪”的例子来说明。</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">策略</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">降级策略是在系统或服务出现部分故障时，通过调整功能和服务水平来维持系统的基本操作和可用性。一个“功能裁剪”的例子是：电商平台在支付服务出现问题时，暂时禁用购买功能，但允许用户继续浏览商品和查看购物车。</div>
          </div>
          <div class="card-source">来源: 服务可用性与降级策略 -> 2. 降级策略的定义与目的 & 3. 常见的降级策略</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">文档中列举了哪些常见的故障检测方法来识别系统失效？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">文档中列举的常见故障检测方法包括：心跳机制（定期发送信号）、健康检查（监控端点状态）、监控系统（收集分析运行数据）、日志分析（识别错误模式）以及故障注入（通过模拟故障来测试检测机制）。</div>
          </div>
          <div class="card-source">来源: 故障检测与恢复 -> 1. 故障检测</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">什么是自动故障转移（Automatic Failover）？它在故障恢复中有什么作用？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">自动故障转移是指在检测到故障后，系统自动将流量或请求转移到备用的健康节点或服务实例。它在故障恢复中的主要作用是减少人工干预，提高恢复速度，从而最小化服务中断时间和用户影响。</div>
          </div>
          <div class="card-source">来源: 故障检测与恢复 -> 2. 故障恢复</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">除了强一致性，文档还介绍了一种什么一致性模型来优先保证高可用性？它的核心概念是什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">文档介绍了“最终一致性”模型。其核心概念是：系统允许在一定时间内数据不一致，但保证最终会达到一致状态。它通常通过异步数据复制和冲突解决机制来实现，适用于对可用性要求极高的场景。</div>
          </div>
          <div class="card-source">来源: 一致性与可用性的权衡 -> 3. 一致性与可用性的实际应用</div>
        </div>
      </div>
    </div>

      </div>
    </body>
    </html>
